home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 September / CHIP 1996 szeptember (CD07).zip / CHIP_CD07.ISO / sac / pack / rar200sl.exe / rar / TECHNOTE.DOC < prev    next >
Text File  |  1996-05-24  |  10KB  |  360 lines

  1.  
  2.  ██████╗   █████╗  ██████╗
  3.  ██╔══██╗ ██╔══██╗ ██╔══██╗     RAR verzia 2.00 - Technické informácie
  4.  ██████╔╝ ███████║ ██████╔╝     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  5.  ██╔══██╗ ██╔══██║ ██╔══██╗
  6.  ██║  ██║ ██║  ██║ ██║  ██║
  7.  ╚═╝  ╚═╝ ╚═╝  ╚═╝ ╚═╝  ╚═╝
  8.  
  9.   ┌─────────────────────────────────────────────────────────────────────┐
  10.   │TU POPISOVANφ FORM╡T ARCH╓VU JE PLATNφ LEN PRE VERZIE NOVµIE AKO 1.50│
  11.   └─────────────────────────────────────────────────────────────────────┘
  12.  
  13.  ╔════════════════════════════════════════════════════════════════════════╗
  14.  ║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ Súborov∞ formát archívu RARu ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
  15.  ╚════════════════════════════════════════════════════════════════════════╝
  16.  
  17.    Archívny súbor sa skladá z blokov premenlivej dƺky. Poradie t∞chto
  18. blokov môºe by£ rôzne, ale prv∞ blok musí by£ znaƒkov∞ blok nasledovan∞
  19. blokom hlaviƒky archívu.
  20.  
  21.    Kaºd∞ blok zaƒína nasledujúcimi poûami:
  22.  
  23. HEAD_CRC       2 bajty     CRC celého bloku alebo ƒasti bloku
  24. HEAD_TYPE      1 bajt      Typ bloku
  25. HEAD_FLAGS     2 bajty     Príznaky bloku
  26. HEAD_SIZE      2 bajty     Veûkos£ bloku
  27. ADD_SIZE       4 bajty     Voliteûné pole - veûkos£ pridaného bloku
  28.  
  29.    Pole ADD_SIZE je prítomné len ak (HEAD_FLAGS & 0x8000) != 0
  30.  
  31.    Celková veûkos£ bloku je HEAD_SIZE ak (HEAD_FLAGS & 0x8000) == 0
  32. a HEAD_SIZE+ADD_SIZE ak je pole ADD_SIZE prítomné - ke╘
  33. (HEAD_FLAGS & 0x8000) != 0.
  34.  
  35.    V kaºdom bloku nasledujúce bity v HEAD_FLAGS majú spoloƒn∞ v∞znam:
  36.  
  37.   0x4000 - ak nastaven∞, starτie verzie RARu ignorujú tento blok
  38.            a odstránia ho pri aktualizácii archívu.
  39.            ak nulov∞, blok je kopírovan∞ do nového archívneho súboru
  40.            pri aktualizácii archívu;
  41.  
  42.   0x8000 - ak nastaven∞, pole ADD_SIZE je prítomné a celková veûkos£ bloku
  43.            je HEAD_SIZE+ADD_SIZE.
  44.  
  45.   Deklarované typy blokov:
  46.  
  47. HEAD_TYPE=0x72          znaƒkov∞ blok
  48. HEAD_TYPE=0x73          hlaviƒka archívu
  49. HEAD_TYPE=0x74          hlaviƒka súboru
  50. HEAD_TYPE=0x75          hlaviƒka komentára
  51. HEAD_TYPE=0x76          extra informácia
  52. HEAD_TYPE=0x77          podblok
  53. HEAD_TYPE=0x78          záchrann∞ záznam
  54.  
  55.    Komentárov∞ blok je momentálne pouºívan∞ len v in∞ch blokoch a nevyskytuje
  56. sa samostatne.
  57.  
  58.    Archív sa spracováva nasledujúcim spôsobom:
  59.  
  60. 1. Preƒíta a skontroluje sa znaƒkov∞ blok
  61. 2. Preƒíta sa hlaviƒka archívu
  62. 3. Preƒítajú alebo vynechajú sa bajty HEAD_SIZE-veûkos£(MAIN_HEAD)
  63. 4. Ak nastal koniec archívu, spracuje sa ukonƒenie archívu, ináƒ
  64.    sa naƒíta 7 bajtov do polí HEAD_CRC, HEAD_TYPE, HEAD_FLAGS, HEAD_SIZE.
  65. 5. Testuje sa HEAD_TYPE.
  66.    V prípade, ºe je potrebné ƒíta£ blok:
  67.          ak HEAD_TYPE==0x74
  68.            preƒíta sa hlaviƒka súboru ( prv∞ch 7 bajtov je uº preƒítan∞ch )
  69.            preƒíta alebo vynechá sa HEAD_SIZE-veûkos£(FILE_HEAD) bajtov
  70.            preƒíta alebo vynechá sa FILE_SIZE bajtov
  71.          ináƒ
  72.            preƒíta sa zodpovedajúci blok HEAD_TYPE:
  73.              preƒíta sa HEAD_SIZE-7 bajtov
  74.              ak (HEAD_FLAGS & 0x8000)
  75.                preƒíta sa ADD_SIZE bajtov
  76.    V prípade, ºe je potrebné vynecha£ blok:
  77.          vynechá sa HEAD_SIZE-7 bajtov
  78.          ak (HEAD_FLAGS & 0x8000)
  79.            vynechá sa ADD_SIZE bajtov
  80. 6. pokraƒuje sa bodom 4.
  81.  
  82.  
  83.  ╔════════════════════════════════════════════════════════════════════════╗
  84.  ║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒  Formáty blokov  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
  85.  ╚════════════════════════════════════════════════════════════════════════╝
  86.  
  87.  
  88.    Znaƒkov∞ blok ( MARK_HEAD )
  89.  
  90.  
  91. HEAD_CRC        Vºdy 0x6152
  92. 2 bajty
  93.  
  94. HEAD_TYPE       Typ hlaviƒky: 0x72
  95. 1 bajt
  96.  
  97. HEAD_FLAGS      Vºdy 0x1a21
  98. 2 bajty
  99.  
  100. HEAD_SIZE       Veûkos£ bloku = 0x0007
  101. 2 bajty
  102.  
  103.    Znaƒkov∞ blok je momentálne reprezentovan∞ pevnou sekvenciou
  104. bajtov: 0x52 0x61 0x72 0x21 0x1a 0x07 0x00
  105.  
  106.  
  107.  
  108.    Hlaviƒka archívu ( MAIN_HEAD )
  109.  
  110.  
  111. HEAD_CRC        CRC polí HEAD_TYPE aº RESERVED2
  112. 2 bajty
  113.  
  114. HEAD_TYPE       Typ hlaviƒky: 0x73
  115. 1 bajt
  116.  
  117. HEAD_FLAGS      Bitové príznaky:
  118. 2 bajty
  119.                 0x01    - Atribút zväzku (archívny zväzok)
  120.                 0x02    - Prítomnos£ archívneho komentára
  121.                 0x04    - Atribút uzamknutia archívu
  122.                 0x08    - Solid atribút (solid archív)
  123.                 0x10    - Nepouºité
  124.                 0x20    - Prítomnos£ AV informácie
  125.  
  126.                 zvyτné bity v HEAD_FLAGS sú rezervované pre
  127.                 interné pouºitie
  128.  
  129. HEAD_SIZE       Celková veûkos£ hlaviƒky archívu vƒetne archívnych komentárov
  130. 2 bajty
  131.  
  132. RESERVED1       Rezervované
  133. 2 bajty
  134.  
  135. RESERVED2       Rezervované
  136. 4 bajty
  137.  
  138.  
  139. Komentárov∞ blok je prítomn∞ ak (HEAD_FLAGS & 0x02) != 0
  140.  
  141.  
  142.  
  143.    Hlaviƒka súboru (Súboru v archíve)
  144.  
  145.  
  146. HEAD_CRC        CRC polí HEAD_TYPE aº FILEATTR
  147. 2 bajty         a názvu súboru
  148.  
  149. HEAD_TYPE       Typ hlaviƒky: 0x74
  150. 1 bajt
  151.  
  152. HEAD_FLAGS      Bitové príznaky:
  153. 2 bajty
  154.                 0x01 - súbor pokraƒuje z predchádzajúceho zväzku
  155.                 0x02 - súbor pokraƒuje na nasledujúcom zväzku
  156.                 0x04 - súbor je zakryptovan∞ pomocou hesla
  157.                 0x08 - prítomn∞ komentár súboru
  158.                 0x10 - je pouºitá informácia z predchádzajúcich súborov
  159.                        (solid príznak) (pre RAR 2.0 a novτie)
  160.  
  161.                 bity 7 6 5 (pre RAR 2.0 a novτie)
  162.  
  163.                      0 0 0    - veûkos£ slovníka   64 kB
  164.                      0 0 1    - veûkos£ slovníka  128 kB
  165.                      0 1 0    - veûkos£ slovníka  256 kB
  166.                      0 1 1    - veûkos£ slovníka  512 kB
  167.                      1 0 0    - veûkos£ slovníka 1024 kB
  168.                      1 0 1    - rezervované
  169.                      1 1 0    - rezervované
  170.                      1 1 1    - súbor je adresár
  171.  
  172.                 (HEAD_FLAGS & 0x8000) == 1, pretoºe úplná
  173.                 veûkos£ bloku je HEAD_SIZE + PACK_SIZE
  174.  
  175. HEAD_SIZE       Celková veûkos£ hlaviƒku súboru vƒetne názvu súboru
  176. 2 bajty         a komentárov
  177.  
  178. PACK_SIZE       Veûkos£ súboru po kompresii
  179. 4 bajty
  180.  
  181. UNP_SIZE        Veûkos£ súboru po rozbalení
  182. 4 bajty
  183.  
  184. HOST_OS         Operaƒn∞ systém pouºit∞ pre archiváciu
  185. 1 bajt                 0 - MS DOS
  186.                        1 - OS/2
  187.                        2 - Win32
  188.                        3 - Unix
  189.  
  190. FILE_CRC        CRC súboru
  191. 4 bajty
  192.  
  193. FTIME           Dátum a ƒas v τtandardnom MS DOS formáte
  194. 4 bajty
  195.  
  196. UNP_VER         Verzia RARu potrebná na extrakciu súboru
  197. 1 bajt
  198.  
  199. METHOD          Metóda kompresie
  200. 1 bajt
  201.  
  202. NAME_SIZE       Dƺka názvu súboru
  203. 2 bajty
  204.  
  205. ATTR            Atribúty súboru
  206. 4 bajty
  207.  
  208. FILE_NAME       Názov súboru - re£azec o dƺke NAME_SIZE bajtov
  209.  
  210.  
  211. Komentárov∞ blok je prítomn∞ ak (HEAD_FLAGS & 0x08) != 0
  212.  
  213.  
  214.  
  215.   Komentárov∞ blok
  216.  
  217.  
  218. HEAD_CRC        CRC polí HEAD_TYPE aº COMM_CRC
  219. 2 bajty
  220.  
  221. HEAD_TYPE       Typ hlaviƒky: 0x75
  222. 1 bajt
  223.  
  224. HEAD_FLAGS      Bitové príznaky
  225. 2 bajty
  226.  
  227. HEAD_SIZE       Veûkos£ hlaviƒky komentára + veûkos£ komentára
  228. 2 bajty
  229.  
  230. UNP_SIZE        Veûkos£ komentáru po rozbalení
  231. 2 bajty
  232.  
  233. UNP_VER         Verzia RARu potrebná na extrakciu komentára
  234. 1 bajt
  235.  
  236. METHOD          Metóda kompresie
  237. 1 bajt
  238.  
  239. COMM_CRC        CRC komentára
  240. 2 bajty
  241.  
  242. COMMENT         Text komentára
  243.  
  244.  
  245.  
  246.   Blok extra informácie
  247.  
  248.  
  249. HEAD_CRC        CRC bloku
  250. 2 bajty
  251.  
  252. HEAD_TYPE       Typ hlaviƒky: 0x76
  253. 1 bajt
  254.  
  255. HEAD_FLAGS      Bitové príznaky
  256. 2 bajty
  257.  
  258. HEAD_SIZE       Celková veûkos£ bloku
  259. 2 bajty
  260.  
  261. INFO            Iné dáta
  262.  
  263.  
  264.   Podblok
  265.  
  266. Po objekte v archíve (blok alebo hlaviƒka) môºe nasledova£ podblok.
  267. Podblok je závisl∞ na hlavnom objekte. Podblok môºe by£ vymazan∞
  268. alebo prenesen∞ do novej verzie archívu, ak je archív aktualizovan∞.
  269.  
  270.  Podblok obsahuje nasledujúce polia:
  271.  
  272. HEAD_CRC        CRC bloku
  273. 2 bajty
  274.  
  275. HEAD_TYPE       Typ hlaviƒky: 0x77
  276. 1 bajt
  277.  
  278. HEAD_FLAGS      Bitové príznaky
  279. 2 bajty
  280.                 (HEAD_FLAGS & 0x8000) == 1, pretoºe úplná
  281.                 veûkos£ bloku je HEAD_SIZE + DATA_SIZE
  282.  
  283. HEAD_SIZE       Celková veûkos£ bloku
  284. 2 bajty
  285.  
  286. DATA_SIZE       Celková veûkos£ dát
  287. 4 bajty
  288.  
  289. SUB_TYPE        Typ podbloku
  290. 2 bajty
  291.  
  292. RESERVED        Musí by£ 0
  293. 1 bajt
  294.  
  295. Iné polia       Iné polia v závislosti od typu podbloku
  296.  
  297.  
  298.   Podblok rozτíren∞ch atribútov OS/2
  299.  
  300.  
  301. HEAD_CRC        CRC bloku
  302. 2 bajty
  303.  
  304. HEAD_TYPE       Typ hlaviƒky: 0x77
  305. 1 bajt
  306.  
  307. HEAD_FLAGS      Bitové príznaky
  308. 2 bajty
  309.                 (HEAD_FLAGS & 0x8000) == 1, pretoºe úplnáÆ
  310.                 veûkos£ bloku je HEAD_SIZE + DATA_SIZE
  311.  
  312. HEAD_SIZE       Celková veûkos£ bloku
  313. 2 bajty
  314.  
  315. DATA_SIZE       Celková veûkos£ dát (veûkos£ skomprimovan∞ch rozτíren∞ch
  316. 4 bajty         atribútov)
  317.  
  318. SUB_TYPE        0x100
  319. 2 bajty
  320.  
  321. RESERVED        Musí by£ 0
  322. 1 bajt
  323.  
  324. UNP_SIZE        veûkos£ rozτíren∞ch atribútov po rozbalení
  325. 4 bajty
  326.  
  327. UNP_VER         Verzia RARu potrebná na extrakciu roτíren∞ch atribútov
  328. 1 bajt
  329.  
  330. METHOD          Metóda kompresie
  331. 1 bajt
  332.  
  333. EA_CRC          CRC rozτíren∞ch atribútov
  334. 4 bajty
  335.  
  336.  
  337.  ╔════════════════════════════════════════════════════════════════════════╗
  338.  ║▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒  Applikaƒné poznámky  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒║
  339.  ╚════════════════════════════════════════════════════════════════════════╝
  340.  
  341.  
  342.    1. Pri spracovaní SFX archívu musíte vynecha£ SFX modul hûadaním
  343. znaƒkového bloku v archíve. V samotnom SFX module sa nenachádza sekvencia
  344. znaƒkového bloku (0x52 0x61 0x72 0x21 0x1a 0x07 0x00).
  345.  
  346.    2. CRC je kalkulovan∞ pouºitím τtandardardného polynómu 0xEDB88320.
  347. V prípade, ºe veûkos£ CRC je menτia ako 4 bajty, sú pouºité len dolné bajty.
  348.  
  349.    3. Zakódovanie metódy kompresie:
  350.          0x30 - ukladanie
  351.          0x31 - najr∞chlejτia kompresia
  352.          0x32 - r∞chla kompresia
  353.          0x33 - normálna kompresia
  354.          0x34 - dobrá kompresia
  355.          0x35 - najlepτia kompresia
  356.  
  357.    4. Verzia RARu potrebná na extrakciu je zakódovaná ako 10 * hlavné ƒíslo
  358. verzie + minoritné ƒíslo verzie.
  359.  
  360.